基本面分析是一種證券或股票估價的方法,利用財務分析和經濟學上的研究來評估企業價值或預測證券(如股票或債券等)價值的走勢。這些被分析的基本資料可以包含一家公司的財務報表和非財務上的資訊,如財貨需求成長性的預測、企業比較、新制度的影響分析或人口的改變。它通常和所謂的技術分析相對,技術分析在研究證券價值的趨勢時,並不使用到市場本身以外的因素來做預測。
From Wiki
今天要處理的資料有
資料來源一樣是FinMind。
這三個資料差不多情形,所以我們把它放一起看
右鍵開啟圖片可看超清版
和昨天的個股三大法人買賣表差不多,
問題點在於這種財報是以季為單位的,
所以我們必須把財報擴展成以以日為單位,
stock_date_df = temp_df.groupby(["stock_id"]).apply(expand_dates).reset_index().loc[:,
["stock_id", "date"]
]
stock_date_df.loc[:, "date"] = stock_date_df.loc[:, "date"].astype(str)
final_df = stock_date_df.merge(
temp_df,
how="left",
).ffill()
欄位的部分我們也得把說明文字存起來,
之後如果要解釋資料才可以知道該欄位是什麼
index_df = df.loc[:, ["type", "origin_name"]].drop_duplicates("type").reset_index(drop=True)
處理完後資料大約會長這樣
最後只要剃除些缺值太多的欄位就完工了
TSBS_df = TSBS_df[TSBS_df.columns[TSBS_df.isnull().mean() < 0.8]]
TSBS_df.info(verbose=True, show_counts=True)
注意:DataFrame.info() 在欄位太多時會被卡掉,
需要強制使用完整資料 DataFrame.info(verbose=True, show_counts=True)
基本上只要把月營收擴充成以日為單位即可,
有興趣的可以自己試試看,當然最後我會附上完整程式碼
我們只需要知道除息日是哪天即可
其他資訊技術面都有給了,不需要額外再放
後來翻回去發現技術面漏了PER、PBR表,之後會補起來
做法和昨天一樣,只是這次出來的是164個特徵的巨無霸
A = TSFS_df.set_index(["date", "stock_id"])
B = TSBS_df.set_index(["date", "stock_id"])
C = TSCFS_df.set_index(["date", "stock_id"])
D = TSMR_df.set_index(["date", "stock_id"])
E = TSDR_df.set_index(["date", "stock_id"])
FI_df = pd.concat([A, B, C, D, E], axis=1).reset_index()
From 嘎唄